const OSS = require('ali-oss')
const ossClient = new OSS({
  region: 'oss-cn-beijing',
  accessKeyId: 'LTAI5tPfEtFA5isQiAVu3p51',
  accessKeySecret: 'qPVKSqOVWXfTc5fqCFiTiDg4G8r2fW',
  bucket: 'kudeprogram',
  authorizationV4: true,
})
// 自定义请求头
const headers = {
  'x-oss-storage-class': 'Standard', // 指定Object的存储类型（标准存储）。
  'x-oss-object-acl': 'public-read', // 指定Object的访问权限（公共读取，否则链接不能访问）。
}
async function listBuckets () {
  try {
    // 列举当前账号所有地域下的存储空间。
    const result = await ossClient.listBuckets()
    return result
  } catch (err) {
    console.log(err)
  }
}
// 上传
const putOSS = async (filePath, file) => {
  try {
    const result = await ossClient.put(filePath, file, { headers })
    return result
  } catch (e) {
    console.log(e, 555)
  }
}
// 删除
const deleteOSS = async (filePath) => {
  try {
    await ossClient.delete(filePath)
    console.log('delete success')
  } catch (e) {
    console.log(e)
  }
}
async function get () {
  try {
    // 填写Object完整路径和本地文件的完整路径。Object完整路径中不能包含Bucket名称。
    // 如果指定的本地文件存在会覆盖，不存在则新建。
    // 如果未指定本地路径，则下载后的文件默认保存到示例程序所属项目对应本地路径中。
    const result = await ossClient.get('138535492ed6e65d9840a35e2b8600e.jpg')
    console.log(result)
  } catch (e) {
    console.log(e)
  }
}
module.exports = {
  putOSS,
  deleteOSS,
  listBuckets,
  get
}